﻿using System.ComponentModel;
using System.Collections.Generic;

namespace FireFly
{
    /// <summary>
    /// Interface of view model
    /// </summary>
    public interface IViewModel : INotifyPropertyChanged
    {
        /// <summary>
        /// Caption of view model for view
        /// </summary>
        string DisplayName
        {
            get;
        }

        /// <summary>
        /// Is this view model readonly
        /// </summary>
        bool IsReadOnly
        {
            get;
        }

        /// <summary>
        /// Command that will executed when view, that represent this view model will be selected
        /// </summary>
        IRelayCommand SelectCommand
        {
            get;
        }

        /// <summary>
        /// All commands of this view model
        /// </summary>
        IEnumerable<IRelayCommand> Commands
        {
            get;
        }
    }
}
